package com.boot.unity.api.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.time.LocalDate;

/**
 * @author XH.M
 * @create 2020-09-08 17:02
 */
@Slf4j
public class ImageUtil {
    /** 对字节数组字符串进行Base64解码并生成图片 */
    public static boolean generateImage(String base64Image, String fileName) {
        if (StringUtils.isBlank(base64Image)){ // 图像数据为空
            return false;
        }
        try {
            // 创建父目录
            File file = new File(fileName);
            File parentFile = file.getParentFile();
            if (!parentFile.exists()){
                parentFile.mkdirs();
            }
            // Base64 解码
            byte[] b = Base64.decodeBase64(base64Image);
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {// 调整异常数据
                    b[i] += 256;
                }
            }
            // 生成jpeg 图片
            OutputStream out = new FileOutputStream(fileName);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            log.error("generateImage保存图片:{}" + e.getMessage());
            return false;
        }
    }

    /** 年月日的文件目录 */
    public static String getPath() {
        return "/" + LocalDate.now().toString().replace("-", "/") + "/";
    }

    /** 年月的文件目录 */
    public static String getPath2(){
        return "/" + LocalDate.now().toString().substring(0,7).replace("-", "/") + "/";
    }
}
